#include <stdio.h>


int main()
{
    // is_prime 数组，用来表示当前数字是否为质数
    int is_prime[1001] = {0};
    for (int i = 2;i < 1001;i++)
    {
        is_prime[i] = 1;
    }

    // primes数组用来装质数
    int primes[300];
    int back = 0;

    // 遍历所有数字
    for (int i = 2;i < 1001;i ++)
    {
        if (is_prime[i])
        {
            primes[back] = i;
            back++;
        }

        for (int j = 0;j < back;j++)
        {
            if (i *primes[j] > 1000)
            {
                break;
            }
            is_prime[i*primes[j]] = 0;

            if (i %primes[j] == 0)
            {
                break;
            }
        }
    }

    // 遍历变长数组
    for (int i = 0;i < back;i++)
    {
        printf("%d ",primes[i]);
    }

    return 0;
}